"""bazelbuild/rules_rust"""

module(
    name = "rules_rust",
    version = "0.57.1",
)

###############################################################################
## Core
###############################################################################

bazel_dep(
    name = "bazel_features",
    version = "1.21.0",
)
bazel_dep(
    name = "bazel_skylib",
    version = "1.7.1",
)
bazel_dep(
    name = "platforms",
    version = "0.0.11",
)
bazel_dep(
    name = "rules_cc",
    version = "0.0.17",
)
bazel_dep(
    name = "rules_license",
    version = "1.0.0",
)
bazel_dep(
    name = "rules_shell",
    version = "0.3.0",
)
bazel_dep(
    name = "apple_support",
    version = "1.17.1",
    repo_name = "build_bazel_apple_support",
)

internal_deps = use_extension("//rust/private:internal_extensions.bzl", "i")
use_repo(
    internal_deps,
    "rrra",
    "rrra__anyhow-1.0.71",
    "rrra__clap-4.3.11",
    "rrra__env_logger-0.10.0",
    "rrra__itertools-0.11.0",
    "rrra__log-0.4.19",
    "rrra__serde-1.0.171",
    "rrra__serde_json-1.0.102",
    "rules_rust_tinyjson",
)

cargo_internal_deps = use_extension("//cargo/private:internal_extensions.bzl", "i")
use_repo(
    cargo_internal_deps,
    "rrcti",
    "rrcti__cargo_toml-0.20.5",
)

rust = use_extension("//rust:extensions.bzl", "rust")
rust.toolchain(edition = "2021")
use_repo(rust, "rust_toolchains")

register_toolchains(
    "@rust_toolchains//:all",
)

rust_host_tools = use_extension("//rust:extensions.bzl", "rust_host_tools")
rust_host_tools.host_tools(
    name = "rust_host_tools",
)
rust_host_tools.host_tools(
    name = "rust_host_tools_nightly",
    version = "nightly",
)
use_repo(
    rust_host_tools,
    "rust_host_tools",
    "rust_host_tools_nightly",
)

rust_test = use_extension("//test:test_extensions.bzl", "rust_test", dev_dependency = True)
use_repo(
    rust_test,
    "buildkite_config",
    "generated_inputs_in_external_repo",
    "libc",
    "rtra",
    "rtra__serde-1.0.217",
    "rtra__serde_json-1.0.137",
    "rules_rust_test_load_arbitrary_tool",
    "rules_rust_toolchain_test_target_json",
)

bazel_dep(
    name = "rules_python",
    version = "0.40.0",
    dev_dependency = True,
)
bazel_dep(
    name = "rules_testing",
    version = "0.7.0",
    dev_dependency = True,
)
bazel_dep(
    name = "bazel_ci_rules",
    version = "1.0.0",
    dev_dependency = True,
)

###############################################################################
## Crate Universe
###############################################################################

crate_universe_internal_deps = use_extension(
    "//crate_universe/private:internal_extensions.bzl",
    "cu",
)
use_repo(
    crate_universe_internal_deps,
    "cargo_bazel.buildifier-darwin-amd64",
    "cargo_bazel.buildifier-darwin-arm64",
    "cargo_bazel.buildifier-linux-amd64",
    "cargo_bazel.buildifier-linux-arm64",
    "cargo_bazel.buildifier-linux-s390x",
    "cargo_bazel.buildifier-windows-amd64.exe",
    "cui",
    "cui__anyhow-1.0.95",
    "cui__camino-1.1.9",
    "cui__cargo-lock-10.0.1",
    "cui__cargo-platform-0.1.9",
    "cui__cargo_metadata-0.19.1",
    "cui__cargo_toml-0.21.0",
    "cui__cfg-expr-0.17.2",
    "cui__clap-4.5.26",
    "cui__crates-index-3.5.0",
    "cui__glob-0.3.2",
    "cui__hex-0.4.3",
    "cui__indoc-2.0.5",
    "cui__itertools-0.14.0",
    "cui__maplit-1.0.2",
    "cui__normpath-1.3.0",
    "cui__once_cell-1.20.2",
    "cui__pathdiff-0.2.3",
    "cui__regex-1.11.1",
    "cui__semver-1.0.24",
    "cui__serde-1.0.217",
    "cui__serde_json-1.0.135",
    "cui__serde_starlark-0.1.16",
    "cui__sha2-0.10.8",
    "cui__spdx-0.10.8",
    "cui__tempfile-3.15.0",
    "cui__tera-1.20.0",
    "cui__textwrap-0.16.1",
    "cui__toml-0.8.19",
    "cui__tracing-0.1.41",
    "cui__tracing-subscriber-0.3.19",
    "cui__url-2.5.4",
    "cui__walkdir-2.5.0",
)

crate_universe_internal_non_repro_deps = use_extension(
    "//crate_universe/private:internal_extensions.bzl",
    "cu_nr",
)
use_repo(
    crate_universe_internal_non_repro_deps,
    "cargo_bazel_bootstrap",
)

crate_universe_internal_dev_deps = use_extension(
    "//crate_universe/private:internal_extensions.bzl",
    "cu_dev",
    dev_dependency = True,
)
use_repo(
    crate_universe_internal_dev_deps,
    "cross_rs",
    "cross_rs_host_bin",
)
